package pay

import (
	"wanyu/server/engine/globaldef/consts"
	"wanyu/server/engine/logger"
	"wanyu/server/engine/wpcfg"
)

//Type 支付类型
type Type uint32

const (
	//Default 默认
	Default Type = iota
	//Credit 上分
	Credit
	//Debit 下分
	Debit
	//Recharge 支付(上分)
	Recharge
	//Redeem 兑换(下分)
	Redeem
	//GiveAway 赠送(上分)
	GiveAway
	// Refund 退款(上分)
	Refund
)

//Data 支付日志
type Data struct {
	PlayerID      string `json:"playerID"`
	AgentID       string `json:"agentID"`
	PlayerAccount string `json:"playerAccount"`
	Channel       int32  `json:"channel"`
	//支付类型
	Type Type `json:"type"`
	// 上下分数量
	Amount int64 `json:"money"`
	// 代理上下分前分数
	AgentBefore int64 `json:"agentBefore"`
	// 代理上下分后分数
	AgentAfter int64 `json:"agentAfter"`
	// 玩家上下分前分数
	PlayerBefore int64 `json:"playerBefore"`
	// 玩家上下分后分数
	PlayerAfter int64 `json:"playerAfter"`
	// 商户单号
	TradeID string `json:"tradeID"`
	// API平台单号
	OrderID string `json:"orderID"`
	//时间
	Time int64 `json:"time"`
}

var l *logger.Logger

/**配置文件
{
    "logger" : {
        "pay" : {
            "addrs" : [
                "192.168.0.193:9092"
            ],
            "partition":0,
            "maxBytes":0,
            "MaxMsgCnt":0
        }
    }
}*/
//初始化
func Init() {
	var c logger.Config
	wpcfg.ScanNode(consts.ConfigServer, &c, "logger", "pay")
	l = logger.NewLogger("pay", &c)
	if l == nil {
		panic("create pay logger failed")
	}
}

//Pay 代理商给玩家上下分
func Pay(d *Data) {
	l.Log(d)
}
